const { DataTypes } = require('sequelize');
const sequelize = require("@/db/seq");

// 定义文章类型模型
const ArticleTypes = sequelize.define('article_types', {
  // 分类名称
  name: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true
  },
  // 父分类 ID，实现分类可以属于分类的功能
  parentTypeId: {
    type: DataTypes.INTEGER,
    allowNull: true,
    defaultValue: null
  }
}, {
  timestamps: true
});

// 定义关联关系（在实际使用时，需要确保 Article 模型已定义）
ArticleTypes.associate = (models) => {
  ArticleTypes.hasMany(models.blog_article, { foreignKey: 'type_id', as: 'articles' });
  ArticleTypes.belongsTo(models.article_types, { foreignKey: 'parentTypeId', as: 'parentType' });
  ArticleTypes.hasMany(models.article_types, { foreignKey: 'parentTypeId', as: 'childrenTypes' });

};

// ArticleTypes.sync({ force: false, alter: true });


module.exports = ArticleTypes;
